Modern development practices suggest that developers separate business logic, data, and presentation. This suggestion has helped simplify the maintenance of many user interfaces, however in practice the extent to which designers can change visuals without changing code is limited. For example, the designer may not be able to change the positioning or ordering of elements.
Typically, when user-interface designs are implemented, developers consider the desired result and write code to implement that result from scratch. When different visual appearances and/or content are desired, different Web Sites or applications are coded. Each site or application is typically implemented separately to achieve the specific result desired. Making radical changes to the appearance and/or merging sites or applications, typically involves a substantial amount of work.
Even with technologies such as Cascading Style Sheets (CSS), the result is still specific to the result being implemented. If the site or application needs to be adapted at a later date to match a different look, re-coding would likely be required.
A system that reduces the amount of work and/or pre-planning associated with making appearance changes to user interfaces, regardless of the scope of changes, would therefore be desirable.
Typically, designers and developers have to work together closely to define a set of customizable characteristics (e.g., styles) as they emerge. It would be advantageous if the developers and designers didn't have to go through this collaboration and instead could use a system that would meet their needs.